/*
 * CaptureCommand.h
 *
 *  Created on: Oct 14, 2008
 *      Author: Ryan
 */

#ifndef CAPTURECOMMAND_H_
#define CAPTURECOMMAND_H_

#include "Command.h"
#include "../Units/Unit.h"

namespace OOInterface
{

/**
 * Encapsulates the command process of a Unit capturing another Unit (e.g., Relics, buildings, etc. ).
 * This command can be used to request that a Unit perform this process if it is capable.
 */
class CaptureCommand: public OOInterface::Command
{
public:
	CaptureCommand( ConstUnitPtr captureUnit ) : _captureTarget( captureUnit ) {}
	virtual ~CaptureCommand() {}

	ConstUnitPtr getCaptureTarget() const { return _captureTarget; }
	void setCaptureTarget( ConstUnitPtr target ) { _captureTarget = target; }

	virtual std::string toString() const { return std::string("CaptureCommand"); }

private:
	ConstUnitPtr _captureTarget;
};

}

#endif /* CAPTURECOMMAND_H_ */
